Method for improving the functions of the binary representation of mpeg-7 and other xml-based content descriptions

ABSTRACT

The aim of the invention is to encode string-based data types, which have for example a tree-type structure, in such a way that signal bits (flags) for optional sections and/or for length information concerning the codes that are of variable length are placed in a defined sequence at the beginning of the created bitstream, thus accelerating the search for data by means of a sorting process and bit mask queries. The invention also relates to a more efficient encoding of the #position field by, among other things, the assignment of code fragments for each group of regular expressions.

[0001] The invention relates to the encoding and decoding of XML-based structured documents, as provided for in MPEG-7 for example. XML (extensible markup language) is a standard for the definition of document structures and is used to represent structured data in a text file and typically forms the basis of the language XHTML. These XML-based structured documents are based on a set of structured elements—also referred to as a “Schema” below in this document—as can be specified for example using Document Type Definition (DTD), XML Schema or Multimedia Description Schemes (DS).

[0002] The binary format of MPEG-7 files and the setting up of navigation paths using tree-structured code tables is known from [1] for example.

[0003] The invention relates to the optimization of the encoding of structured XML documents. The underlying object of the invention now consists of specifying methods for improving the functionality of the binary representation of XML-based content descriptions, especially of MPEG-7 documents, in which the volume of data to be transmitted is as small as possible and search processes within the encoded document as well as the further processing of the encoded document are as simple as possible.

[0004] This object is achieved in accordance with the invention by the features of claims 1 and 4. The other claims relate to advantageous further developments of the inventive method.

[0005] One of the conclusions from the above-mentioned ISO/IEC Draft [1] is that the structure of an XML document can be recorded as a data tree in which each element of the description corresponds to a node in this tree. The structure of the nodes is determined by the definition in the schema underlying the document. In particular it defines the type and number of child elements. The prototype of such a node is shown for example on Page 19 of [1]. This tree structure node consists of the name of the element or complex type, a field with code words TBC (Tree Branch Code) which serve to reference the child elements and the tree branches which represent the references to the corresponding child elements. It can also be taken from [1] that the TBCs can be divided up into two components, namely schema branching and position information, whereby the schema information is derived from the elements that occur in the schema as child elements, whereas the position information contains the position information for those elements which can occur multiple times. The possible types of child element in these cases are complex type elements which in their turn can contain other child elements, but also simple type elements or attributes that cannot contain child elements. The length of the field #position is defined by the maximum number (“maxOccurs”) of the element concerned which is specified in the schema.

[0006] To move around in the document the TBCs, that is the Schema Branch Codes, and if necessary the position codes are concatenated, which produces a path in the document. If the desired element is reached, the last code will be inserted in the table. If the desired element cannot have any further children, i.e. it is an attribute or a simple type, then this termination code is not necessary and will not be sent. In this case the attribute or the simple type element is subsequently transmitted encoded. The invention now essentially consists of encoding string-based data types, that is updated types derived directly or indirectly from the data type string, of which the possible content is specified using regular expressions [4] and which for example can be represented as a tree-type structure, in such a way of that signal bits (flags) for optional parts and/or length information of the variable length codes are in accordance with a general method in a defined order and that by on the one hand the processing of the information contained in the data type can be simplified by preceding information about the content and also the search for data can be accelerated by sorting out and bit mask interrogations. Furthermore the invention relates to a more efficient encoding of the #position field by assigning specific code fragments for each grouping of elements in accordance with the definition of the data type.

[0007] The invention is explained below in more detail on the basis of the examples shown in the diagrams. The diagrams show

[0008]FIG. 1 a regular expression for definition of a string-based data type with a number of nested optional parts,

[0009]FIG. 2 a first representation of the regular expression shown in FIG. 1 together with the associated bit stream created for a string-based data type,

[0010]FIG. 3 a further representation of the regular expressions shown in FIG. 1 together with the associated bit stream for the string-based data type to explain the invention and

[0011]FIG. 4 a representation for a regular expression to explain the improvement in encoding efficiency in accordance with the invention.

[0012]FIG. 1 shows a description of a string-based data type specified by a regular expression with optional parts. The regular expressions contained in the definition of the data type are for example specified in more detail in [4]. Below the regular expressions of simple optionally present parts 1, 4 und 5 as well as nested optional parts 2, 2.1, 2.1.1 or 3, 3.1, 3.1.1, 3.1.1.1, and 3.1.1.1.1 indicated by the corresponding dashes.

[0013]FIG. 2 shows a representation RRA1(T(S)) for a string-based data type T(S) specified by the regular expression S of FIG. 1 with the aid of flags numbered in accordance with the optional parts, in which case here, as previously normal in [2], the relevant flag is followed directly by a corresponding interrogation of the flag as well as by the optionally included information data. In parallel to representation RRA1(T(S)) from top to bottom a bit stream BS1 is specified a line-by-line with the relevant number of bits. As can be shown in the above example the classes, for example \d{2}, of the authorized characters, called data fields below, can then be encoded with specific binary representations. Variable-length data fields such as “\d+” will be encoded here with variable-length codes, whereby specific bits, for example every ninth bit, signal whether further bits, for example nine bits, follow.

[0014] In the existing method for encoding string-based data types the regular expressions are used to encode the structure of the instantiation. However to evaluate coded data of this data type the entire data stream must be read in in order to be able to establish relevant paths for the recipient, that is the corresponding data fields, are contained in the data stream. Furthermore it is not possible for the decoder to determine in advance the resources required for decoding and storing the data fields, but it must do this in step with the decoding of the bit stream.

[0015] A representation for a regular expression of a string-based data type is known to a corresponding encoder or decoder by definition or must be signaled to the latter accordingly.

[0016]FIG. 3 shows a representation changed in accordance with the invention RRA2(T(S)) for the regular expression S together with a corresponding further bit stream BS2. In this example the flags SOP for optional parts are initially stored in accordance with the encoding principle described in [2] but here they are stored at the beginning of bit stream BS2, before the length information LVLC of the variable-length data is subsequently stored.

[0017] This length information can for example be encoded as follows: The number of consecutive bits that are equal to 1 represent the number of data blocks used for the corresponding representation of variable-length data. If, as in the above example, the data block consists of eight bits, the binary code “1110” specifies a data length of 24 bits for example, whereas the binary code “10” specifies a length of 8 bits. These computed data lengths are represented in this example with “8*VLC X”.

[0018] The fact that in the invention the signaling bits or flags for optional parts and/or length information of the variable-length codes is placed in a defined order, at the start of the bit stream, means that the search for data can be accelerated. Since the first flags signal whether the existing data can contain those parts of the regular expression for which the search is being made it is not necessary to read in the entire bit stream BS2 to do this. Furthermore as a result of the information about the data fields used and their length at the start of the bit stream, the rest of bit stream RBS can be compared for the search with a pre specified bit pattern.

[0019]FIG. 4 represents or shows a representation of the definition for a complex data type T to be encoded in parallel with the relevant schema branching code SBC for the relevant position code #pos showing how a correspondent tree branching table is constructed. SBCs are assigned to the elements of a complex type element, for example in the order in which they occur in the definition, regardless of the grouping in which they occur or how deeply nested they are. When and elements of the same type and/or the same name occur in two or more different groups within and the specification of the complex type different codes are also assigned. This schema branching code SBC uniquely defines which element is encoded within which, possibly nested, grouping. The position code #pos can be assembled in accordance with the nesting of the groupings. In this case for each grouping which is a father of the element to be encoded, a code fragment, for example CF, is assigned in a fixed order, for example beginning with the furthest away. In this case, depending on the maximum possible a current is the each of these groupings a fixed bit length is used in each case. However a variable bit length, corresponding to the definition for encoding the position code can also be used.

[0020] In the example of FIG. 4 elements a to c are assigned a schema branching code SBC in the order in which they occur. Element a occurs twice here, in which case on the second occurrence it is assigned a different code “100” instead of “001”. The field for the position code #pos is made up of the following components or code fragments:

[0021] 3 Bits XXX which determine the position within the outside sequence bracket;

[0022] Multiples of 4 Bits YYYY which determine the position within the choice bracket, and

[0023] Multiples of 4 Bits ZZZZ which determine the position below the elements c.

[0024] The advantage of the method in accordance with the invention, compared to the method described in [3], is that only the positions at which the elements involved can actually be positioned in accordance with the schema definition have to be encoded or addressed. In addition a position code also only has to be transferred for elements of which there can be multiple instances. This enables the description structure to be encoded more efficiently. Another significant advantage produced is that the document can be expanded by additional elements at any given nesting level, which is often not possible in the method in accordance with [3] because of the sequentially assigned position codes.

[0025] The following publications are cited in this document:

[0026] [1] ISO/IEC CD 15938-1 Information technology—Multimedia content description interface: Systems, ISO/IEC JTC1 SC29/WG11/N3701, La Baule (France), October 2000

[0027] [2] Datatype encoding improvements for BiM, Cedric Thienot, Claude Seyrat, Gregoire Pau, ISO/IEC JTC1 SC29/WG11/M6853, Pisa (Italy), January 2001

[0028] [3] BiM navigation path improvements, Cedric Thienot, Claude Seyrat, Gregoire Pau, ISO/IEC JTC1 SC29/WG11/M6854, Pisa (Italy), January 2001

[0029] [4] from the Internet: http://www.w3.org/TR/xmlschema-2/#regexs 

1. Method for improving the functionality of a binary representation of XML-based content descriptions, in which a string-based data type (T(S)) which is defined by a regular expression (RRA2(T(S))) is mapped in such as way that the signaling bits (SOP) for optional parts and/or length information (LVLC) of variable-length codes are placed in a defined order, derived from the regular expression at the start of a bit stream (BS2) for instantiation of the string-based data type.
 2. Method in accordance with claim 1, in which the data in the bit stream in at least one instantiation are searched in such a way that initially signaling bits are checked for whether they contain specific optional parts of the regular expression at all.
 3. Method in accordance with claim 1, in which the data in the bit stream in at least one instantiation are searched in such a way that initially signaling bits are used in advance in the decoder to provide the corresponding resources for processing and/or storing the contained data fields.
 4. Method in accordance with claim 2 or 3, in which length information is used to generate a bit pattern for searching in the remaining bit stream (RBS).
 5. Method for improving the functionality of a binary representation of XML-based content descriptions, in which a data type (T) is mapped in such a way that structure elements in different groups of the representation are assigned different tree branching codes (SBC) and that the position codes (#pos)feature different code fragments (CF) for different nesting depths in which the structure elements occur. 